当前位置:flash课件吧→免费FLASH教程之三(含实例教程)(新页面 新改版 新气象) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
题 目:FlashMXMedia组件实现Mp3连放 Flash MX 2004 的Media组件确实不错,大家在使用的时候可能发现MediaDisplay组件只能播放一首mp3,假如要让他播放完一首歌曲后再接着播放另一首歌曲就不行了。今天就来给大家介绍一下怎样用MediaController和MediaDisplay组件实现多首mp3的联播。 播放器界面如图:
思路如下: 歌曲列表用一外部XML文档来记录,便于修改。开始的时候定义一XML对象,并载入外部XML文档,载入后再将歌曲列表提取出来放入一数组中。接着用attachMovie()方法将MediaController和MediaDisplay组件载入舞台,然后配置各自的参数,并将二者相关联(Media.associateController()或Media.associateDisplay()方法都行)当一首歌曲播放完后,触发MediaDisplay的complete事件,在此事件中我将MediaController和MediaDisplay组件卸载并重新载入MediaController和MediaDisplay组件(使用attachMovie()方法)并给一新的实例名,并配置MediaDisplay组件的播放内容为下一首歌曲,如此往复来播放任何的歌曲。 制作步骤: 1.新建一个FLASH文档,配置舞台大小:220*70。 2.将组件MediaController和MediaDisplay拖入舞台,然后从舞台上删除。这样做的目的是将这两个组件载入库中,为接下来用attachMovie()方法将MediaController和MediaDisplay组件载入舞台做好准备。 3.新建一层,命名为function。在该层的第一帧上输入如下AS代码: function init(){ flagNum = 1; //播放歌曲的标示 mp3Num = 0; attachController(); }; //将MediaController和MediaDisplay组件载入舞台并初始化 function attachController(){ //将MediaDisplay组件载入舞台并给定义实例名 "mp3Container" flagNum _root.attachMovie("MediaDisplay","mp3Container" flagNum,2); //配置组件初始参数 with(_root["mp3Container" flagNum]){ _x = 250; _y = 0; setMedia(myArray[mp3Num],"MP3"); } //将MediaController组件载入舞台并给定义实例名 "mp3Controller" flagNum _root.attachMovie("MediaController","mp3Controller" flagNum,1); //配置组件初始参数 with(_root["mp3Controller" flagNum]){ _x = 0; _y = 0; activePlayControl = false; controllerPolicy = "on"; //将MediaController和MediaDisplay组件相关联 associateDisplay(_root["mp3Container" flagNum]); }; }; function playNext(){ //将MediaController和MediaDisplay组件从舞台上删除 _root["mp3Controller" flagNum].removeMovieClip(); _root["mp3Container" flagNum].removeMovieClip(); flagNum = 1; mp3Num = 1; //假如播放到歌曲的最后一首,将mp3Num = 0,意为将从头开始播放 if(mp3Num == mp3Total) mp3Num = 0; //重新载入MediaController和MediaDisplay组件,并给一新的实例名 attachController(); //因为每播放完一首歌曲后MediaController和MediaDisplay组件从舞台上被卸载 //然后又重新载入MediaController和MediaDisplay组件并给了另外一个实例名 //所以要重新向注册的监听器广播事情 _root["mp3Container" flagNum].addEventListener("complete", myListener); }; 4.新建一层,命名为action,在该层第一帧输入一下AS代码: stop(); //数组myArray用来存储 载入的XML文档中的歌曲名称 var myArray = new Array(); //歌曲的总数 var mp3Total:Number; var myXml = new XML(); myXml.ignoreWhite = true; myXml.load("mp3list.xml"); myXml.onLoad = function() { var e = myXml.firstChild.childNodes; mp3Total = e.length; for (var i = 0; i myArray.push(e[i].attributes["title"]); } init(); _root["mp3Container" flagNum].addEventListener("complete", myListener); }; var myListener = new Object(); myListener.complete = function(eventObject) { playNext(); }; 5.保存文档,Ctrl Enter测试影片并输出SWF文档。测试影片时会有错误提示,不用担心,这是由于没有生成XML文档的缘故。 6.创建XML文档: 将该文档保存在和原SWF文档相同的文档夹中,命名为mp3list.xml。 7.在原文档目录下放入两首mp3,默认名称为1.mp3,2.mp3,这里的名称和歌曲数目大家能够自己修改XML文档。 到此为止,一个连放两首MP3的播放器就能够使用了,打开SWF文档,您将会听到优美动听的音乐,同时看到播放进度显示等MP3播放器常有的功能。注意:要想让这个播放器用于您的网站上,必须把SWF文档和XML连同两首MP3文档上传到您的网站的同一个文档夹中。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|